<?php
//dirname(dirname(dirname(__FILE__)))
//require('c:/wamp/www/setyd/fpdf/fpdf.php');
define( "DIRRAIZ", dirname(dirname(__FILE__)) );

require(DIRRAIZ.'/fpdf/fpdf.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_bar.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_bar.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_pie.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_pie.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_pie3d.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_pie3d.php');


		class PDF extends  FPDF
		{
			// Page header
			function Header()
			{
			    // Logo
//			    $this->Image('c:/wamp/www/setyd/web/img/logUtn.jpg',150,1,45,30);
			    $this->Image(DIRRAIZ.'/web/img/logUtn.jpg',150,1,45,30);
				
			    // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the right
			    $this->Cell(40);
			    // Title
			    $this->Cell(80,10,'Escavelo Software Delivery',1,0,'C');
			    // Line break
			    $this->Ln(20);
			}
			
			// Page footer
			function Footer()
			{
			    // Position at 1.5 cm from bottom
			    $this->SetY(-15);
			    // Arial italic 8
			    $this->SetFont('Arial','I',8);
			    // Page number
			    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
			}
			
			// Colored table
			function FancyTable($header, $data ,$w,$title)
			{
			   
			   	 // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the( right
			    $this->Cell(10)	;
			    // Title
			    $this->Cell(80,10,'Informe de Tickets por Tecnico');
			    // Line break
			    $this->Ln(20);
			    	
					
					
			    // Colors, line width and bold font
			    $this->SetFillColor(50,0,0);
			    $this->SetTextColor(255);
			    $this->SetDrawColor(128,0,0);
			    $this->SetLineWidth(.3);
			    $this->SetFont('','B');
				
			    // Header
			    for($i=0;$i<count($header);$i++)
			        $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
			    $this->Ln();
				
			    // Color and font restoration
			    $this->SetFillColor(224,235,255);
			    $this->SetTextColor(0);
			    $this->SetFont('');
			    // Data
			    $fill = false;
			    foreach($data as $row)
			    {
			        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
			        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
			        $this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
					$this->Cell($w[3],6,$row[3],'LR',0,'L',$fill);
			        $this->Ln();
			        $fill = !$fill;
			    }
			    // Closing line
			    $this->Cell(array_sum($w),0,'','T');
			}
	
				// Colored table
			function FancyTableTicket($header, $data ,$w,$title)
			{
			   
			   	 // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the( right
			    $this->Cell(10)	;
			    // Title
			    $this->Cell(80,10,$title);
			    // Line break
			    $this->Ln(20);
			    	
					
					
			    // Colors, line width and bold font
			    $this->SetFillColor(50,0,0);
			    $this->SetTextColor(255);
			    $this->SetDrawColor(128,0,0);
			    $this->SetLineWidth(.3);
			    $this->SetFont('','B');
				
			    // Header
			    for($i=0;$i<count($header);$i++)
			        $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
			    $this->Ln();
				
			    // Color and font restoration
			    $this->SetFillColor(224,235,255);
			    $this->SetTextColor(0);
			    $this->SetFont('');
			    // Data
			    $fill = false;
			    foreach($data as $row)
			    {
			        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
			        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
			        $this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
					$this->Cell($w[3],6,$row[3],'LR',0,'L',$fill);
					$this->Cell($w[4],6,$row[4],'LR',0,'L',$fill);
					$this->Cell($w[5],6,$row[5],'LR',0,'L',$fill);
					$this->Cell($w[6],6,$row[6],'LR',0,'L',$fill);
			        $this->Ln();
			        $fill = !$fill;
			    }
			    // Closing line
			    $this->Cell(array_sum($w),0,'','T');
			}
	
	
				
							
			// Load data
			function LoadData($file)
			{
			    // Read file lines
			    $lines = file($file);
			    $data = array();
			    foreach($lines as $line)
			        $data[] = explode(';',trim($line));
			    return $data;
			}
		}



	class Reporte extends Model {
	
		public static function CrearReporteTicket($idEmpresa,$fechaIni,$fechafin,$idClientes){
				// Instanciation of inherited class
				$pdf = new PDF();
		
				$header = array('Id Cliente', 'Asignadas','Finalizadas', 'Pendientes','Rechazadas', 'Iniciadas','Totales');
				$pdf->AddPage();
		
				$TareasAsignada = array();
				$TareasSolucionados = array();
				$TareasPendiente = array();
				$TareasRechazada = array();
				$TareasIniciada = array();
				$TareasIngresados = array();
	       
				$ar=fopen("Ticket.txt","w") or
					    die("Problemas en la creacion");
				$i=0;
			    $TotalTicket = 0;
			    foreach($idClientes as $idCliente) {
					$CantTareasAsignada = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,2,$idCliente);
					$CantTareasSolucionados= tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,3,$idCliente);
					$CantTareasPendiente = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,4,$idCliente);
					$CantTareasRechazada = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,5,$idCliente);
					$CantTareasIniciada = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,6,$idCliente);
					$CantTareasIngresados = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,0,$idCliente);
					
					$TareasAsignada [$i]  = $CantTareasAsignada;
					$TareasSolucionados [$i]  = $CantTareasSolucionados;
					$TareasPendiente [$i]  = $CantTareasPendiente;
					$TareasRechazada [$i]  = $CantTareasRechazada;
					$TareasIniciada [$i]  = $CantTareasIniciada;
					$TareasIngresados [$i]  = $CantTareasIngresados;				
					$i++;
					$TotalTicket = $TotalTicket + $CantTareasIngresados;		
			        
					fputs($ar, $idCliente . ";" . $CantTareasAsignada . ";" . 
			         $CantTareasSolucionados . ";" . $CantTareasPendiente . ";" .
			         $CantTareasRechazada . ";" . $CantTareasIniciada . ";" .   $CantTareasIngresados );
					 fputs($ar,"\n");
				}
		
			
				$data = $pdf->LoadData('Ticket.txt');
				
				$w = array(35,30, 30, 30 ,30, 20, 20);
				$title = 'Informe de Tickets';
				$pdf->FancyTableTicket($header,$data,$w,$title);
				
			
				$grafica = new Graph(500, 400,'auto');
				$grafica->img->SetMargin(50,40,20,0);
				
				$grafica->SetScale("textlin", 0, $TotalTicket);
				
				//Asigna el titulo al grafico
				$grafica->title->Set("Informe de Estado de Tickets");
				
				//Asigna el titulo al eje x
				$grafica->xaxis->SetTitle("Codigo Cliente");
				
				//Asigna el titulo y alineacion al eje y
				$grafica->yaxis->SetTitle("Cantidad Tickets","middle");
				
				//Asigna las etiquetas para los valores del eje x
				$grafica->xaxis->SetTickLabels($idClientes);
				
				//crea una serie para el grafico de barras
				$Asignada = new BarPlot($TareasAsignada);
				
				//asigna la leyenda para la serie matematicas
				$Asignada->SetLegend("Asignada");
				
				//asigna el color de relleno de las barras con el nombre del color
				$Asignada->SetFillColor("blue");
				
				//crea una serie para el grafico de barras
				$Finalizada = new BarPlot($TareasSolucionados);
				
				//asigna la leyenda para la serie quimica
				$Finalizada->SetLegend("Finalizadas");
				
				//asigna el color de relleno de las barras con el nombre del color
				$Finalizada->SetFillColor("green");
				
				//crea una serie para el grafico de barras
				$Pendiente = new BarPlot($TareasPendiente);
				
				//asigna la leyenda para la serie quimica
				$Pendiente->SetLegend("Pendientes");
				
				//asigna el color de relleno de las barras con el nombre del color
				$Pendiente->SetFillColor("orange");

				//crea una serie para el grafico de barras
				$rechazada= new BarPlot($TareasRechazada);
				
				//asigna la leyenda para la serie quimica
				$rechazada->SetLegend("Rechazadas");
				
				//asigna el color de relleno de las barras con el nombre del color
				$rechazada->SetFillColor("red");

				//crea una serie para el grafico de barras
				$iniciada = new BarPlot($TareasIniciada);
				
				//asigna la leyenda para la serie quimica
				$iniciada->SetLegend("Iniciados");
				
				//asigna el color de relleno de las barras con el nombre del color
				$iniciada->SetFillColor("darkgray");
				
				//crea una serie para el grafico de barras
				$total = new BarPlot($TareasIngresados);
				
				//asigna la leyenda para la serie quimica
				$total->SetLegend("Total");
				
				//asigna el color de relleno de las barras con el nombre del color
				$total->SetFillColor("yellow");				
				
				// agrupa las series del grafico
				$tickets = new GroupBarPlot(array($Asignada,$Finalizada,$Pendiente,$rechazada,$iniciada,$total));
				
				//agrega al grafico el grupo de series
				$grafica->Add($tickets);

				// Guardar el archivo
				//$sArchivo = 'c:/wamp/www/setyd/ticket.png';
				$sArchivo = DIRRAIZ.'/ticket.png';
				
				
				if(file_exists($sArchivo)) {
					unlink($sArchivo);
				}
				
				$grafica->Stroke($sArchivo);
						
				//$ruta_relativa = 'c:/wamp/www/setyd/'; 	
				$ruta_relativa = DIRRAIZ.'/'; 	
								
			//	$pdf->Image('c:/wamp/www/setyd/ticket.png',50,100,100,100);
				$pdf->Image(DIRRAIZ.'/ticket.png',50,100,100,100);
				$pdf->ln();
				$pdf->Output('tickets.pdf', 'D');

		}
		
		public static function CrearReporteTecnico($idTecnicos,$fechaIni,$fechafin){
				$pdf = new PDF();
			    
				$pdf->AliasNbPages();
				$pdf->SetFont('Times','',12);
				$header = array('Tecnico', 'Aceptadas', 'Rechazadas', 'Resueltos');
				$pdf->AddPage();
				

				
				$ar=fopen("datos.txt","w") or
				    die("Problemas en la creacion");
				
			    $ticketsA = array () ;
			    $ticketsR = array () ;
			    $ticketsC = array () ;
			    $i = 0;
				
				foreach($idTecnicos as $idTecnico)
			    {
					$CantTareasAceptadas= tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(2,6));
					//$CantTareasRechazadas = TareaRechazada::listarCantTareasRechazadasPorTecnico($idTecnico,$fechaIni,$fechafin);
					$CantTareasRechazadas = tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(5));
					$CantTareasFinalizadas = tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(3));

	         		fputs($ar,$idTecnico .";" . $CantTareasAceptadas . ";" . $CantTareasRechazadas . ";" . $CantTareasFinalizadas );
				 	fputs($ar,"\n");
				 	
					$ticketsA [$i] = $CantTareasAceptadas;
					$ticketsR [$i] = $CantTareasRechazadas ;
					$ticketsC [$i] = $CantTareasFinalizadas ;
					$i++;
					
				}

	
		
				$data = $pdf->LoadData('datos.txt');
				$w = array(20, 35, 30, 30);
				$title = 'Informe de Tickets por Tecnico';
				$pdf->FancyTable($header,$data,$w,$title);


				$grafica = new Graph(500, 400,'auto');
				$grafica->img->SetMargin(50,40,20,0);
				
				$grafica->SetScale("textlin", 0, 10);
				
				//Asigna el titulo al grafico
				$grafica->title->Set("Tickets Aceptados / Rechazados / Resueltos por tecnicos");
				
				//Asigna el titulo al eje x
				$grafica->xaxis->SetTitle("Tecnicos");
				
				//Asigna el titulo y alineacion al eje y
				$grafica->yaxis->SetTitle("Cantidad Tickets","middle");
				
				//Asigna las etiquetas para los valores del eje x
				$grafica->xaxis->SetTickLabels($idTecnicos);
				
				//crea una serie para un grafico de barras
				$aceptados = new BarPlot($ticketsA);
				
				//asigna la leyenda para la serie fisica
				$aceptados->SetLegend("Aceptados");
				
				//asigna el color de relleno de las barras en formato hexadecimal
				$aceptados->SetFillColor("green");
				
				//crea una serie para el grafico de barras
				$rechazados = new BarPlot($ticketsR);
				
				//asigna la leyenda para la serie matematicas
				$rechazados->SetLegend("Rechazados");
				
				//asigna el color de relleno de las barras con el nombre del color
				$rechazados->SetFillColor("red");
				
				//crea una serie para el grafico de barras
				$resueltos = new BarPlot($ticketsC);
				
				//asigna la leyenda para la serie quimica
				$resueltos->SetLegend("Resueltos");
				
				//asigna el color de relleno de las barras con el nombre del color
				$resueltos->SetFillColor("blue");
				
				// agrupa las series del grafico
				$tickets = new GroupBarPlot(array($aceptados,$rechazados,$resueltos));
				
				//agrega al grafico el grupo de series
				$grafica->Add($tickets);
				
				// Guardar el archivo
			//	$sArchivo = 'c:/wamp/www/setyd/tecnico.png';
				$sArchivo = DIRRAIZ.'/tecnico.png';
				
								
				if(file_exists($sArchivo)) {
					unlink($sArchivo);
				}
				
				$grafica->Stroke($sArchivo);
						
//				$ruta_relativa = 'c:/wamp/www/setyd/'; 		
				$ruta_relativa = DIRRAIZ.'/'; 				
						
//				$pdf->Image('c:/wamp/www/setyd/tecnico.png',50,100,100,80);
				$pdf->Image(DIRRAIZ.'/tecnico.png',50,100,100,80);
				$pdf->ln();
				$pdf->Output('tecnicos.pdf', 'D');

		}
	}
?>